#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

typedef int DListType;

typedef struct DListNode
{
	DListType data;
	struct DListNode* prev;
	struct DListNode* next;
}DLTNode;

DLTNode* DLTInit();
void DLTDestroy(DLTNode* phead);
DLTNode* Buy_DLTNode(DListType x);
void DLTPrint(DLTNode* phead);

void DLTPushBack(DLTNode* phead, DListType x);
void DLTPushFront(DLTNode* phead, DListType x);
void DLTPopBack(DLTNode* phead);
void DLTPopFront(DLTNode* phead);


DLTNode* DLTFind(DLTNode* phead, DListType x);
void DLTChange(DLTNode* pos, DListType x);

void DLTInsert(DLTNode* pos, DListType x);
void DLTErase(DLTNode* pos);